02. Anaconda 是什么?

序言

Anaconda

欢迎学习本课程,如何使用 Anaconda 来管理 Python 所用的包和环境。Anaconda 能让你在数据科学的工作中轻松安装经常使用的程序包。你还将使用它创建虚拟环境,以便更轻松地处理多个项目。Anaconda 简化了工作流程,并且解决了多个包和 Python 版本之间遇到的大量问题。

Anaconda 实际上是一个软件发行版,它附带了 conda、Python 和 150 多个科学包及其依赖项。应用程序 conda 是包和环境管理器。Anaconda 的下载文件比较大(约 500 MB),因为它附带了 Python 中最常用的数据科学包。如果只需要某些包,或者需要节省带宽或存储空间,也可以使用 Miniconda 这个较小的发行版(仅包含 conda 和 Python)。但你仍可以使用 conda 来安装任何可用的包,只是它自身没有附带这些包而已。

conda 只能通过命令行来使用。因此,如果你觉得它很难用,可以参考面向 Windows 的命令提示符教程,或者学习面向 OSX/Linux 用户的 Linux 命令行基础知识课程。

你可能已经安装了 Python,并且想知道为何还需要 Anaconda。首先, Anaconda 附带了一大批常用数据科学包,因此你可以立即开始处理数据。其次,使用 conda 来管理包和环境能减少将来在处理数据过程中使用到的各种库与版本时遇到的问题。

管理包

使用 conda 安装 numpy

使用 conda 安装 numpy

包管理器用于在计算机上安装库和其他软件。你可能已经熟悉 pip,它是 Python 库的默认包管理器。condapip 相似,不同之处是可用的包以数据科学包为主,而 pip 适合一般用途。与此同时,conda 并非像 pip 那样专门适用于 Python,它也可以安装非 Python 的包。它是支持任何软件的包管理器。也就是说,虽然并非所有的 Python 库都能通过 Anaconda 发行版和 conda 获得,但同时它也支持非 Python 库的获得。在使用 conda 的同时,你仍可以使用 pip 来安装包。

Conda 安装了预编译的包。例如,Anaconda 发行版附带了使用 MKL 库编译的 Numpy、Scipy 和 Scikit-learn,从而加快了各种数学运算的速度。这些包由发行版的贡献者维护,这意味着它们通常滞后于最新版本。但是,由于有人需要利用这些包来进行系统构建,因此它们往往更为稳定,而且也更便于你使用。

环境

使用 conda 创建环境

使用 conda 创建环境

除了管理包之外,conda 还是虚拟环境管理器。它类似于另外两个很流行的环境管理器,即 virtualenvpyenv

你可以使用conda环境管理器分隔不同项目的包。你常常要使用依赖于某个库的不同版本的代码。例如,你的代码可能使用了 Numpy 中的新功能,或者使用了已删除的旧功能。实际上,不可能同时安装两个 Numpy 版本。你要做的应该是,为每个 Numpy 版本创建一个环境,然后在项目的对应环境中工作。

在应对 Python 2 和 Python 3 时,此问题也会常常发生。你可能会使用在 Python 3 中不能运行的旧代码,以及在 Python 2 中不能运行的新代码。同时安装两个版本可能会造成许多混乱和错误,而创建独立的环境会好很多。

你也可以将环境中的包列表导出为文件,然后将该文件与代码打包在一起。这能让其他人轻松加载代码的所有依赖项。pip 提供了类似的功能,即 pip freeze > requirements.txt

接下来介绍的内容

接下来,我会详细介绍 Anaconda 的用法。首先,我会介绍它的安装过程,然后介绍如何使用包管理器,最后介绍如何创建和管理环境。